package edu.ccut.saturn.component;

import java.util.Collection;
import java.util.Set;

/**
 * 记录bundle中的验证组件信息。
 * 
 * @author 温建
 * @version 1.0 2008.9.04
 */
public interface IBundleValidateInfo {

	/**
	 * 添加验证组件信息
	 * @param validateInfo
	 * @throws SaturnComponentException
	 */
	public abstract void addValidateInfo(IValidateInfo validateInfo)
			throws SaturnComponentException;

	/**
	 * 添加多个验证组件信息
	 * @param validateInfos
	 * @throws SaturnComponentException
	 */
	public abstract void addValidateInfos(
			Collection<IValidateInfo> validateInfos)
			throws SaturnComponentException;

	/**
	 * 获得bundle的名称
	 * @return
	 */
	public abstract String getBundleSymbolicName();

	/**
	 * 获得保存的所有验证组件
	 * @return
	 */
	public abstract Collection<IValidateInfo> getValidateInfos();

	/**
	 * 获得保存的所有验证组件的键值
	 * @return
	 */
	public abstract Set<String> getValidateInfoKeys();

	/**
	 * 根据全局键值获得验证组件实例
	 * @param componentKey
	 * @return
	 */
	public abstract IValidateInfo getValidateInfo(String componentKey);

}